package com.haiwei.poi.excel.loop;

import com.haiwei.poi.word.loop.HaiweiLoopSginParser;
import org.junit.Assert;
import org.junit.Test;

/**
 * HaiweiLoopSginParser测试类.
 *
 * @date: 2022-06-26
 * @version: 1.0
 * @author: karry@haiwei.com
 */
public class HaiweiLoopSginParserTester {

    @Test
    public void isLoopStartSignTest(){
        Assert.assertFalse(HaiweiLoopSginParser.isLoopStartSign("123"));
        Assert.assertFalse(HaiweiLoopSginParser.isLoopStartSign("##{abc}"));
        Assert.assertFalse(HaiweiLoopSginParser.isLoopStartSign("##{}}}}}"));
        Assert.assertFalse(HaiweiLoopSginParser.isLoopStartSign("#######"));
        Assert.assertFalse(HaiweiLoopSginParser.isLoopStartSign("###____1231233!@#$%^&"));
        
       
        Assert.assertFalse(HaiweiLoopSginParser.isLoopStartSign("##={begin : items_item}"));
        Assert.assertFalse(HaiweiLoopSginParser.isLoopStartSign("##={group:items_item}"));
    
        Assert.assertTrue(HaiweiLoopSginParser.isLoopStartSign("##={begin:items_item}"));
        Assert.assertTrue(HaiweiLoopSginParser.isLoopStartSign("##={begin:items_item}}}}}}}"));
        Assert.assertTrue(HaiweiLoopSginParser.isLoopStartSign("####={begin:items_item}"));
    }

    @Test
    public void parseTest(){
        Assert.assertEquals("items",HaiweiLoopSginParser.parse("##={begin:items_item}").getPath());
        Assert.assertEquals("item",HaiweiLoopSginParser.parse("##={begin:items_item}").getItem());
        
        Assert.assertEquals("order.items",HaiweiLoopSginParser.parse("##={begin:order.items_item}").getPath());
        Assert.assertEquals("item",HaiweiLoopSginParser.parse("##={begin:order.items_item}").getItem());
        
        Assert.assertEquals("订单.行项列表",HaiweiLoopSginParser.parse("##={begin:订单.行项列表_行项}").getPath());
        Assert.assertEquals("行项",HaiweiLoopSginParser.parse("##={begin:订单.行项列表_行项}").getItem());
    }

}
